#ifndef LYRICSWINDOW_H
#define LYRICSWINDOW_H

#include <QMainWindow>
#include <QSortFilterProxyModel>

#include "optionsDialog.h"

namespace Ui {
    class LyricsWindow;
}

class TrackController;
class Track;
class LyricsReader;

class FileFilterProxyModel : public QSortFilterProxyModel
{
public:
    FileFilterProxyModel(QObject * parent = 0);

protected:
    virtual bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const;
};

class LyricsWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit LyricsWindow(QWidget *parent = 0);
    ~LyricsWindow();

private:
    Ui::LyricsWindow *ui;
    OptionsDialog *optionsDialog;    
    TrackController *trackController;
    Track *currentTrack;
    LyricsReader *lyricsReader;


private slots:
    void trackChanged(Track *track);
    void on_treeView_clicked(QModelIndex index);
    void on_actionOptions_triggered();
    void on_actionExit_triggered();
};

#endif // LYRICSWINDOW_H
